#! /bin/bash
#

#yum源
YUMS(){
	echo "====yum===="
	`curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo  &>/dev/null`
	if [[ $? == 0 ]];then
		echo "yum:success"
	else
		echo "yum:error"
	fi
}
#ssh默认端口,禁止root登录
SSHS(){
	echo "====ssh===="
	read -p "请输入ssh远程连接端口: " ports	
	sed -i '17 c \Port '$ports'' /etc/ssh/sshd_config &>/dev/null

	#sed -i '38 c \PermitRootLogin no' /etc/ssh/sshd_config &>/dev/null

	sed -i '115 c \UseDNS no' /etc/ssh/sshd_config &>/dev/null
	
	if [[ `awk 'NR==17{print $2}' /etc/ssh/sshd_config` == $ports && `awk 'NR==115{print $2}' /etc/ssh/sshd_config` == no ]];then
		echo "ssh:success"
	else
		echo "ssh:error"
	fi
}
#时间同步计划任务
TIMES(){
	echo "====time===="
	if `rpm -qa | grep ntpdate` &>/dev/null;then
    	(crontab -l 2>/dev/null; echo "*/30 * * * *    /usr/sbin/ntpdate 120.25.115.20 &> /dev/null") | crontab -
    	if [[ $? -eq 0 ]];then
    	        echo "time:success"     
    	else
    	        echo "time:error"
    	fi
	else
		yum install -y ntpdate &> /dev/null
    	(crontab -l 2>/dev/null; echo "*/30 * * * *    /usr/sbin/ntpdate 120.25.115.20 &> /dev/null") | crontab -
    	if [[ $? -eq 0 ]];then
    	        echo "time:success"     
    	else
    	        echo "time:error"
    	fi
	fi
}
#配置网卡
WK(){
	echo "====ens33===="
	while true; do
		#手动设置IP和网关
		read -p "请输入ens33-IP: " IPADDR
		IPZZ="^((([0-9])|([0-9][0-9])|(1[0-9][0-9])|2[0-4][0-9]|25[0-5])[\.]){3}((([0-9])|([0-9][0-9])|(1[0-9][0-9])|2[0-4][0-9]|25[0-5]))$";
		if [[ $IPADDR =~ $IPZZ ]]; then
		
			#手动配置网关
			while true ;do
				read -p "请输入ens33-gateway: " GATEWAY
				#GATEWAY=192.168.30.2
				if [[ $GATEWAY =~ $IPZZ ]]; then
					#配置网卡
					nmcli connection modify ens33 ipv4.addresses ${IPADDR}/24 &>/dev/null
					nmcli connection modify ens33 ipv4.gateway $GATEWAY &>/dev/null
					nmcli connection modify ens33 ipv4.dns "114.114.114.114" &>/dev/null
				    nmcli connection modify ens33 +ipv4.dns "223.5.5.5" &>/dev/null
					nmcli connection modify ens33 ipv4.method manual &>/dev/null
					nmcli connection modify ens33 autoconnect on &>/dev/null
		
					nmcli connection reload &>/dev/null
					nmcli connection up ens33 &>/dev/null 
					echo "ens33:success";
					break;
				else
					echo "gateway:error";
				fi;
			done;
			break;
		else
			echo "IP:error";
			continue;		
		fi
	done
}

#修改主机名
HOSTNAME(){
	echo "====hostname===="
    while true; do
	    read -p "请输入hostname: " hostname
	    hostnamectl set-hostname $hostname &> /dev/null
	    if [ $? -eq 0 ];then
	    	echo "hostname:success"
            break;
	    else
		    echo "hostname:error"
	    fi
    done 
}

#添加主机名解析
JX(){
	echo "====DNS===="
	hname=`hostname`
	if grep ${hname} /etc/hosts &>/dev/null;then
		echo "DNS-status:open"	
	else
		IP=`ifconfig ens33 |awk 'NR==2{print $2}'`
		sed -i '$a  \'$IP'  '$hname' ' /etc/hosts &>/dev/null
		if [ $? -eq 0 ];then
			echo "DNS:success"
		else
			echo "DNS:error"
		fi
	
	fi
}

#关闭防火墙
FIREWALLD(){
	echo "====firewalld===="
	if systemctl status firewalld &> /dev/null ; then
		systemctl stop firewalld &>/dev/null
		systemctl disable firewalld.service &>/dev/null
		if [ $? -eq 0 ];then
			echo "firewalld-close:success"
		else
			echo "firewalld-close:error"
		fi
	else 
		echo "firewalld-status:close"
	fi
}
#关闭selinux
SELINUX(){
	echo "====selinux===="
	if [[ `getenforce &>/dev/null` == Disabled ]];then
		echo "selinux-status:close"
	else
		sed -i '/^SELINUX=/s|enforcing|disabled|' /etc/selinux/config
		if [ $? -eq 0 ];then
			echo "selinux-close:success";
		else
			echo "selinux-close:error"
		fi
	fi
}
#PS1
PS1(){
        echo "====PS1===="
        echo "
export IP=`ifconfig ens33 | grep "192.168" | awk '{print $2}'`
export PS1='\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\w\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]@\[\e[0m\]\[\e[34m\]\h(\[\e[31m\]$IP\[\e[m\])\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]\$ '
echo -e '
$(tput setaf 1)/**                      $(tput sgr0)
$(tput setaf 2)*　　　　　 　 　 ┏┓　　　  ┏┓+ +        $(tput sgr0)
$(tput setaf 3)*　　　　　 　 　┏┛┻━     ━━┛┻┓ + +      $(tput sgr0)
$(tput setaf 4)*　　　　　 　 　┃　　　　　  ┃          $(tput sgr0)
$(tput setaf 5)* 　　　　　　 　┃　　　━　   ┃ ++ + + +$(tput sgr0)
$(tput setaf 6)*                ████━████    ┃+     $(tput sgr0)
$(tput setaf 7)* 　　　　　 　　┃　　　　  　┃ +        $(tput sgr0)
$(tput setaf 2)* 　　　　　 　　┃　　┻　　   ┃          $(tput sgr0)
$(tput setaf 3)* 　　　　　 　　┃　　　 　 　┃ + +      $(tput sgr0)
$(tput setaf 4)*　　　　　 　 　┗━┓　　　  ┏━┛          $(tput sgr0)
$(tput setaf 5)*　　　　　　　　　┃　　  　┃            $(tput sgr0)
$(tput setaf 7)*　　　　　　　　　┃　　  　┃ + + + +    $(tput sgr0)
$(tput setaf 6)*　　　　　　　　　┃　　  　┃　　　　Code is far away from bug with the animal protecting$(tput sgr0)
$(tput setaf 1)*　　　　　　　　　┃　　  　┃ + 　　　　神兽保佑,代码无bug$(tput sgr0)
$(tput setaf 2)*　　　　　　　　　┃　　  　┃$(tput sgr0)
$(tput setaf 3)*　　　　　　　　　┃　　  　┃　　+$(tput sgr0)
$(tput setaf 4)*　　　　　　　　　┃　 　 　┗━━━┓ + +$(tput sgr0)
$(tput setaf 5)*　　　　　　　　　┃ 　　　　 　┣┓$(tput sgr0)
$(tput setaf 6)*　　　　　　　　　┃ 　　　　　┏┛$(tput sgr0)
$(tput setaf 7)*　　　　　　　　　┗┓┓┏  ━  ┳┓┏┛ + + + +$(tput sgr0)
$(tput setaf 2)*　　　　　　 　　　┃┫┫　  ┃┫┫$(tput sgr0)
$(tput setaf 3)*　　　　　 　　　　┗┻┛　  ┗┻┛+ + + +$(tput sgr0)
$(tput setaf 4)*$(tput sgr0)
'
" >> /etc/profile

}


#主逻辑
SELINUX
FIREWALLD
HOSTNAME
WK
JX
YUMS
SSHS
TIMES
read -p "配置PS1(y/n) " it1
if [[ $it1 == y ]];then
        PS1
fi
read -p "是否重启(y/n) " it
if [[ $it == y ]];then
	init 6
fi
